/**
 * 日志系统配置
 * 
 * 在应用启动时调用初始化
 * 
 * @author AI Assistant
 * @date 2025-11-27
 */

import { DEBUG, EDITOR, PREVIEW } from 'cc/env';
import { logger, LogLevel, LogCategory } from './Logger';

/**
 * 初始化日志系统
 * 
 * @param isDevelopment 是否为开发环境
 */
export function initLogger(isDevelopment: boolean = true): void {
    if (isDevelopment) {
        // 开发模式
        logger.setDevelopmentMode();
        
        // 可选：只显示特定分类的日志
        // logger.setCategoryFilter([LogCategory.ECS, LogCategory.GAME]);
        
        // 可选：为特定分类设置不同的日志级别
        // logger.setCategoryLevel(LogCategory.RESOURCE, LogLevel.INFO);
        // logger.setCategoryLevel(LogCategory.NETWORK, LogLevel.DEBUG);
        
        console.log('日志系统已初始化 - 开发模式');
    } else {
        // 生产模式
        logger.setProductionMode();
        
        // 生产环境只显示警告和错误
        logger.setLevel(LogLevel.WARN);
        
        console.log('日志系统已初始化 - 生产模式');
    }
}

/**
 * 获取当前环境配置
 */
export function getEnvironmentConfig() {
    // 可以根据构建配置或环境变量判断
    // 这里简单判断是否为编辑器环境
    return {
        isDevelopment: typeof EDITOR !== 'undefined' && EDITOR,
        isPreview: typeof PREVIEW !== 'undefined' && PREVIEW,
        isDebug: typeof DEBUG !== 'undefined' && DEBUG,
    };
}

/**
 * 根据环境自动初始化
 */
export function autoInitLogger(): void {
    const env = getEnvironmentConfig();
    const isDevelopment = env.isDevelopment || env.isPreview || env.isDebug;
    initLogger(isDevelopment);
}

